#include<stdio.h>
#include<stdbool.h>
#include<stdlib.h>
#include<assert.h>

//鸽笼原理进阶

int picCag(int begin, int end)
{
  int* cage = (int*)calloc((end - begin + 1), sizeof(int));
  assert(cage);

  int count = 0;  //这个也是笼子的长度
  for(int i = begin; i <= end; i++)
  {
    bool flag = true;
    for(int j = 0; j < count; j++)
    {
      if((i - cage[j]) == 5 || (i - cage[j]) == 8)
      {
        //如果满足了条件，就不符合“任意”的概念，不能进笼子
        flag = false;
        break;
      }
    }
    if(flag)
      cage[count++] = i;  //符合条件的抓进笼子
  }

  free(cage);
  cage = NULL;

  return count;
}
  
int main()
{
  int begin = 1;
  int end = 1989;
  int num = picCag(begin, end);
  printf("%d\n", num);
  return 0;
}
